;(function ($, window, document, undefined) {
//定义一个全局script的标记数组，用来标记是否某个script已经下载到本地
    var scriptsArray = [];
    $.cachedScript = function (url, options) {
        // 循环script标记数组
        for (var s in scriptsArray) {
            // 如果某个数组已经下载到了本地
            if (scriptsArray[s] === url) {
                return { //则返回一个对象字面量，其中的done之所以叫做done是为了与下面$.ajax中的done相对应
                    done: function (method) {
                        typeof method === 'function' && method();
                    }
                };
            }
        }
        // 这里是jquery官方提供类似getScript实现的方法，也就是说getScript其实也就是对ajax方法的一个拓展
        options = $.extend(options || {}, {
            dataType: "script",
            url: url,
            cache: true // 其实现在这缓存加与不加没多大区别
        });
        scriptsArray.push(url); //将url地址放入script标记数组中
        return $.ajax(options);
    };

})(jQuery, window, document);